home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / X11 / fonts / FSproto.h < prev   
C/C++ Source or Header  |  2006-04-12  |  21KB  |  817 lines

  1. /* $Xorg: FSproto.h,v 1.4 2001/02/09 02:03:25 xorgcvs Exp $ */
  2. /*
  3.  
  4. Copyright 1990, 1991, 1998  The Open Group
  5.  
  6. Permission to use, copy, modify, distribute, and sell this software and its
  7. documentation for any purpose is hereby granted without fee, provided that
  8. the above copyright notice appear in all copies and that both that
  9. copyright notice and this permission notice appear in supporting
  10. documentation.
  11.  
  12. The above copyright notice and this permission notice shall be included in
  13. all copies or substantial portions of the Software.
  14.  
  15. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  18. OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  19. AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  20. CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  21.  
  22. Except as contained in this notice, the name of The Open Group shall not be
  23. used in advertising or otherwise to promote the sale, use or other dealings
  24. in this Software without prior written authorization from The Open Group.
  25.  
  26.  * Copyright 1990, 1991 Network Computing Devices;
  27.  * Portions Copyright 1987 by Digital Equipment Corporation 
  28.  *
  29.  * Permission to use, copy, modify, distribute, and sell this software and
  30.  * its documentation for any purpose is hereby granted without fee, provided
  31.  * that the above copyright notice appear in all copies and that both that
  32.  * copyright notice and this permission notice appear in supporting
  33.  * documentation, and that the names of Network Computing Devices, or Digital
  34.  * not be used in advertising or publicity pertaining to distribution
  35.  * of the software without specific, written prior permission.
  36.  *
  37.  * NETWORK COMPUTING DEVICES, AND DIGITAL DISCLAIM ALL WARRANTIES WITH
  38.  * REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
  39.  * MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES,
  40.  * OR DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
  41.  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  42.  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
  43.  * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
  44.  * THIS SOFTWARE.
  45.  */
  46. /* $XFree86: xc/include/fonts/FSproto.h,v 1.2 2001/08/01 00:44:37 tsi Exp $ */
  47.  
  48. #ifndef _FS_PROTO_H_
  49. #define _FS_PROTO_H_
  50.  
  51. #include <X11/fonts/FS.h>
  52.  
  53. #define sz_fsPropOffset 20
  54. #define sz_fsPropInfo 8
  55. #define sz_fsResolution 6
  56.  
  57. #define sz_fsChar2b 2
  58. #define sz_fsChar2b_version1 2
  59. #define sz_fsOffset32 8
  60. #define sz_fsRange        4
  61.  
  62. #define    sz_fsXCharInfo        12
  63. #define    sz_fsXFontInfoHeader        40
  64.  
  65. #define    sz_fsConnClientPrefix    8
  66. #define    sz_fsConnSetup        12
  67. #define    sz_fsConnSetupExtra    8
  68. #define    sz_fsConnSetupAccept    12
  69.  
  70. /* request sizes */
  71. #define    sz_fsReq        4
  72. #define    sz_fsListExtensionsReq    4
  73. #define    sz_fsResourceReq    8
  74.  
  75. #define    sz_fsNoopReq            4
  76. #define    sz_fsListExtensionReq        4
  77. #define    sz_fsQueryExtensionReq        4
  78. #define    sz_fsListCataloguesReq        12
  79. #define    sz_fsSetCataloguesReq        4
  80. #define    sz_fsGetCataloguesReq        4
  81. #define    sz_fsSetEventMaskReq        8
  82. #define    sz_fsGetEventMaskReq        4
  83. #define    sz_fsCreateACReq        8
  84. #define    sz_fsFreeACReq            8
  85. #define    sz_fsSetAuthorizationReq    8
  86. #define    sz_fsSetResolutionReq        4
  87. #define    sz_fsGetResolutionReq        4
  88. #define    sz_fsListFontsReq        12
  89. #define    sz_fsListFontsWithXInfoReq    12
  90. #define    sz_fsOpenBitmapFontReq        16
  91. #define    sz_fsQueryXInfoReq        8
  92. #define    sz_fsQueryXExtents8Req        12
  93. #define    sz_fsQueryXExtents16Req        12
  94. #define    sz_fsQueryXBitmaps8Req        16
  95. #define    sz_fsQueryXBitmaps16Req        16
  96. #define    sz_fsCloseReq            8
  97.  
  98. /* reply sizes */
  99. #define    sz_fsReply            8
  100. #define    sz_fsGenericReply        8
  101.  
  102. #define    sz_fsListExtensionsReply    8
  103. #define    sz_fsQueryExtensionReply    20
  104. #define    sz_fsListCataloguesReply    16
  105. #define    sz_fsGetCataloguesReply        8
  106. #define    sz_fsGetEventMaskReply        12
  107. #define    sz_fsCreateACReply        12
  108. #define    sz_fsGetResolutionReply        8
  109. #define    sz_fsListFontsReply        16
  110. #define    sz_fsListFontsWithXInfoReply    (12 + sz_fsXFontInfoHeader)
  111. #define    sz_fsOpenBitmapFontReply    16
  112. #define    sz_fsQueryXInfoReply        (8 + sz_fsXFontInfoHeader)
  113. #define    sz_fsQueryXExtents8Reply    12
  114. #define    sz_fsQueryXExtents16Reply    12
  115. #define    sz_fsQueryXBitmaps8Reply    20
  116. #define    sz_fsQueryXBitmaps16Reply    20
  117.  
  118. #define    sz_fsError        16
  119. #define    sz_fsEvent        12
  120. #define sz_fsKeepAliveEvent     12
  121.  
  122. #define    fsTrue    1
  123. #define    fsFalse    0
  124.  
  125. /* temp decls */
  126. #define    Mask        CARD32
  127. #define    Font        CARD32
  128. #define    AccContext    CARD32
  129.  
  130. typedef CARD32    fsTimestamp;
  131.  
  132. #ifdef NOTDEF /* in fsmasks.h */
  133. typedef CARD32    fsBitmapFormat;
  134. typedef CARD32    fsBitmapFormatMask;
  135. #endif
  136.  
  137. #define sz_fsBitmapFormat    4
  138.  
  139. typedef struct {
  140.     INT16     left B16,
  141.                 right B16;
  142.     INT16     width B16;
  143.     INT16     ascent B16,
  144.                 descent B16;
  145.     CARD16     attributes B16;
  146. }           fsXCharInfo;
  147.  
  148. typedef struct {
  149.     CARD8       high;
  150.     CARD8       low;
  151. }           fsChar2b;
  152.  
  153. typedef struct {
  154.     CARD8       low;
  155.     CARD8       high;
  156. }           fsChar2b_version1;
  157.  
  158. typedef struct {
  159.     CARD8    min_char_high;
  160.     CARD8    min_char_low;
  161.     CARD8    max_char_high;
  162.     CARD8    max_char_low;
  163. }           fsRange;
  164.  
  165. typedef struct    {
  166.     CARD32    position B32;
  167.     CARD32    length B32;
  168. }        fsOffset32;
  169.  
  170. typedef struct {
  171.     fsOffset32    name;
  172.     fsOffset32    value;
  173.     CARD8     type;
  174.     BYTE        pad0;
  175.     CARD16    pad1 B16;
  176. }           fsPropOffset;
  177.  
  178. typedef struct {
  179.     CARD32    num_offsets B32;
  180.     CARD32    data_len B32;
  181.     /* offsets */
  182.     /* data */
  183. }        fsPropInfo;
  184.  
  185. typedef struct {
  186.     CARD16    x_resolution B16;
  187.     CARD16    y_resolution B16;
  188.     CARD16    point_size B16;
  189. }        fsResolution;
  190.  
  191.   
  192. typedef struct {
  193.     CARD32    flags B32;
  194.     CARD8    char_range_min_char_high;
  195.     CARD8    char_range_min_char_low;
  196.     CARD8    char_range_max_char_high;
  197.     CARD8    char_range_max_char_low;
  198.  
  199.     CARD8    draw_direction;
  200.     CARD8    pad;
  201.     CARD8    default_char_high;
  202.     CARD8    default_char_low;
  203.     INT16    min_bounds_left B16;
  204.     INT16    min_bounds_right B16;
  205.  
  206.     INT16    min_bounds_width B16;
  207.     INT16    min_bounds_ascent B16;
  208.     INT16    min_bounds_descent B16;
  209.     CARD16    min_bounds_attributes B16;
  210.  
  211.     INT16    max_bounds_left B16;
  212.     INT16    max_bounds_right B16;
  213.     INT16    max_bounds_width B16;
  214.     INT16    max_bounds_ascent B16;
  215.  
  216.     INT16    max_bounds_descent B16;
  217.     CARD16    max_bounds_attributes B16;
  218.     INT16    font_ascent B16;
  219.     INT16    font_descent B16;
  220.     /* propinfo */
  221. }           fsXFontInfoHeader;
  222.  
  223.  
  224. /* requests */
  225.  
  226. typedef struct {
  227.     BYTE        byteOrder;
  228.     CARD8       num_auths;
  229.     CARD16     major_version B16;
  230.     CARD16     minor_version B16;
  231.     CARD16     auth_len B16;
  232.     /* auth data */
  233. }           fsConnClientPrefix;
  234.  
  235. typedef struct {
  236.     CARD16      status B16;
  237.     CARD16     major_version B16;
  238.     CARD16     minor_version B16;
  239.     CARD8    num_alternates;
  240.     CARD8    auth_index;
  241.     CARD16    alternate_len B16;
  242.     CARD16    auth_len B16;
  243.     /* alternates */
  244.     /* auth data */
  245. }           fsConnSetup;
  246.  
  247. typedef struct {
  248.     CARD32    length B32;
  249.     CARD16      status B16;
  250.     CARD16    pad B16;
  251.     /* more auth data */
  252. }           fsConnSetupExtra;
  253.  
  254. typedef struct {
  255.     CARD32    length B32;
  256.     CARD16    max_request_len B16;
  257.     CARD16    vendor_len B16;
  258.     CARD32    release_number B32;
  259.     /* vendor string */
  260. }        fsConnSetupAccept;
  261.  
  262. typedef struct {
  263.     CARD8       reqType;
  264.     CARD8       data;
  265.     CARD16     length B16;
  266. }           fsReq;
  267.  
  268. /*
  269.  * The fsFakeReq structure is never used in the protocol; it is prepended
  270.  * to incoming packets when setting up a connection so we can index
  271.  * through InitialVector.  To avoid alignment problems, it is padded
  272.  * to the size of a word on the largest machine this code runs on.
  273.  * Hence no sz_fsFakeReq constant is necessary.
  274.  */
  275. typedef struct {
  276.     CARD8       reqType;
  277.     CARD8       data;
  278.     CARD16     length B16;
  279.     CARD32    pad B32;    /* to fill out to multiple of 64 bits */
  280. }           fsFakeReq;
  281.  
  282. typedef struct {
  283.     CARD8       reqType;
  284.     BYTE        pad;
  285.     CARD16      length B16;
  286.     Font        id B32;
  287. }           fsResourceReq;
  288.  
  289. typedef fsReq    fsNoopReq;
  290. typedef fsReq    fsListExtensionsReq;
  291.  
  292. typedef struct {
  293.     CARD8       reqType;
  294.     BYTE        nbytes;
  295.     CARD16     length B16;
  296.     /* name */
  297. }           fsQueryExtensionReq;
  298.  
  299. typedef struct {
  300.     CARD8       reqType;
  301.     CARD8       data;
  302.     CARD16     length B16;
  303.     CARD32     maxNames B32;
  304.     CARD16     nbytes B16;
  305.     CARD16     pad2 B16;
  306.     /* pattern */
  307. }        fsListCataloguesReq;
  308.  
  309. typedef struct {
  310.     CARD8       reqType;
  311.     BYTE        num_catalogues;
  312.     CARD16     length B16;
  313.     /* catalogues */
  314. }           fsSetCataloguesReq;
  315.  
  316. typedef fsReq    fsGetCataloguesReq;
  317.  
  318. typedef struct {
  319.     CARD8       reqType;
  320.     CARD8       ext_opcode;
  321.     CARD16     length B16;
  322.     Mask    event_mask;
  323. }           fsSetEventMaskReq;
  324.  
  325. typedef struct {
  326.     CARD8       reqType;
  327.     CARD8       ext_opcode;
  328.     CARD16     length B16;
  329. }           fsGetEventMaskReq;
  330.  
  331. typedef struct {
  332.     CARD8       reqType;
  333.     BYTE        num_auths;
  334.     CARD16      length B16;
  335.     AccContext  acid B32;
  336.     /* auth protocols */
  337. }           fsCreateACReq;
  338.  
  339. typedef fsResourceReq    fsFreeACReq;
  340. typedef fsResourceReq    fsSetAuthorizationReq;
  341.  
  342. typedef struct {
  343.     CARD8    reqType;
  344.     BYTE    num_resolutions;
  345.     CARD16    length B16;
  346.     /* resolutions */
  347. }        fsSetResolutionReq;
  348.  
  349. typedef fsReq    fsGetResolutionReq;
  350.  
  351. typedef struct {
  352.     CARD8       reqType;
  353.     BYTE        pad;
  354.     CARD16     length B16;
  355.     CARD32     maxNames B32;
  356.     CARD16     nbytes B16;
  357.     CARD16     pad2 B16;
  358.     /* pattern */
  359. }           fsListFontsReq;
  360.  
  361. typedef fsListFontsReq fsListFontsWithXInfoReq;
  362.  
  363. typedef struct {
  364.     CARD8       reqType;
  365.     BYTE        pad;
  366.     CARD16     length B16;
  367.     Font     fid B32;
  368.     fsBitmapFormatMask format_mask B32;
  369.     fsBitmapFormat format_hint B32;
  370.     /* pattern */
  371. }           fsOpenBitmapFontReq;
  372.  
  373. typedef fsResourceReq fsQueryXInfoReq;
  374.  
  375. typedef struct {
  376.     CARD8       reqType;
  377.     BOOL        range;
  378.     CARD16     length B16;
  379.     Font     fid B32;
  380.     CARD32    num_ranges B32;
  381.     /* list of chars */
  382. }           fsQueryXExtents8Req;
  383.  
  384. typedef fsQueryXExtents8Req    fsQueryXExtents16Req;
  385.  
  386. typedef struct {
  387.     CARD8       reqType;
  388.     BOOL    range;
  389.     CARD16     length B16;
  390.     Font     fid B32;
  391.     fsBitmapFormat format B32;
  392.     CARD32    num_ranges B32;
  393.     /* list of chars */
  394. }           fsQueryXBitmaps8Req;
  395.  
  396. typedef fsQueryXBitmaps8Req    fsQueryXBitmaps16Req;
  397.  
  398. typedef fsResourceReq fsCloseReq;
  399.  
  400.  
  401. /* replies */
  402. typedef struct {
  403.     BYTE        type;
  404.     BYTE        data1;
  405.     CARD16     sequenceNumber B16;
  406.     CARD32     length B32;
  407. }           fsGenericReply;
  408.  
  409. typedef struct {
  410.     BYTE        type;
  411.     CARD8       nExtensions;
  412.     CARD16     sequenceNumber B16;
  413.     CARD32     length B32;
  414.     /* extension names */
  415. }           fsListExtensionsReply;
  416.  
  417. typedef struct {
  418.     BYTE        type;
  419.     CARD8       present;
  420.     CARD16     sequenceNumber B16;
  421.     CARD32     length B32;
  422.     CARD16    major_version B16;
  423.     CARD16    minor_version B16;
  424.     CARD8       major_opcode;
  425.     CARD8       first_event;
  426.     CARD8       num_events;
  427.     CARD8       first_error;
  428.     CARD8       num_errors;
  429.     CARD8    pad1;
  430.     CARD16    pad2 B16;
  431. }           fsQueryExtensionReply;
  432.  
  433. typedef struct {
  434.     BYTE        type;
  435.     BYTE        pad;
  436.     CARD16     sequenceNumber B16;
  437.     CARD32     length B32;
  438.     CARD32    num_replies B32;
  439.     CARD32    num_catalogues B32;
  440.     /* catalog names */
  441. }        fsListCataloguesReply;
  442.  
  443. typedef struct {
  444.     BYTE        type;
  445.     CARD8       num_catalogues;
  446.     CARD16     sequenceNumber B16;
  447.     CARD32     length B32;
  448.     /* catalogue names */
  449. }           fsGetCataloguesReply;
  450.  
  451. typedef struct {
  452.     BYTE        type;
  453.     BYTE        pad1;
  454.     CARD16     sequenceNumber B16;
  455.     CARD32     length B32;
  456.     CARD32     event_mask B32;
  457. }        fsGetEventMaskReply;
  458.  
  459. typedef struct {
  460.     BYTE    type;
  461.     CARD8    auth_index;
  462.     CARD16    sequenceNumber B16;
  463.     CARD32    length B32;
  464.     CARD16    status B16;
  465.     CARD16    pad B16;
  466.     /* auth data */
  467. }        fsCreateACReply;
  468.  
  469. typedef struct {
  470.     CARD32    length B32;
  471.     CARD16    status B16;
  472.     CARD16    pad B16;
  473.     /* auth data */
  474. }        fsCreateACExtraReply;
  475.  
  476. typedef struct {
  477.     BYTE    type;
  478.     CARD8    num_resolutions;
  479.     CARD16    sequenceNumber B16;
  480.     CARD32    length B32;
  481.     /* resolutions */
  482. }        fsGetResolutionReply;
  483.  
  484. typedef struct {
  485.     BYTE        type;
  486.     BYTE        pad1;
  487.     CARD16     sequenceNumber B16;
  488.     CARD32     length B32;
  489.     CARD32    following B32;
  490.     CARD32     nFonts B32;
  491.     /* font names */
  492. }           fsListFontsReply;
  493.  
  494. /*
  495.  * this one is messy.  the reply itself is variable length (unknown
  496.  * number of replies) and the contents of each is variable (unknown
  497.  * number of properties)
  498.  *
  499.  */
  500.  
  501. typedef struct {
  502.     BYTE        type;
  503.     CARD8       nameLength;    /* 0 is end-of-reply */
  504.     CARD16     sequenceNumber B16;
  505.     CARD32     length B32;
  506.     CARD32     nReplies B32;
  507.     CARD32    font_header_flags B32;
  508.     CARD8    font_hdr_char_range_min_char_high;
  509.     CARD8    font_hdr_char_range_min_char_low;
  510.     CARD8    font_hdr_char_range_max_char_high;
  511.     CARD8    font_hdr_char_range_max_char_low;
  512.     CARD8    font_header_draw_direction;
  513.     CARD8    font_header_pad;
  514.     CARD8    font_header_default_char_high;
  515.     CARD8    font_header_default_char_low;
  516.     INT16    font_header_min_bounds_left B16;
  517.     INT16    font_header_min_bounds_right B16;
  518.     INT16    font_header_min_bounds_width B16;
  519.     INT16    font_header_min_bounds_ascent B16;
  520.     INT16    font_header_min_bounds_descent B16;
  521.     CARD16    font_header_min_bounds_attributes B16;
  522.     INT16    font_header_max_bounds_left B16;
  523.     INT16    font_header_max_bounds_right B16;
  524.     INT16    font_header_max_bounds_width B16;
  525.     INT16    font_header_max_bounds_ascent B16;
  526.     INT16    font_header_max_bounds_descent B16;
  527.     CARD16    font_header_max_bounds_attributes B16;
  528.     INT16    font_header_font_ascent B16;
  529.     INT16    font_header_font_descent B16;
  530.     /* propinfo */
  531.     /* name */
  532. }           fsListFontsWithXInfoReply;
  533.     
  534. typedef struct {
  535.     BYTE        type;
  536.     CARD8       otherid_valid;
  537.     CARD16     sequenceNumber B16;
  538.     CARD32     length B32;
  539.     CARD32    otherid B32;
  540.     BYTE    cachable;
  541.     BYTE    pad1;
  542.     CARD16    pad2 B16;
  543. }           fsOpenBitmapFontReply;
  544.  
  545. typedef struct {
  546.     BYTE        type;
  547.     CARD8       pad0;
  548.     CARD16     sequenceNumber B16;
  549.     CARD32     length B32;
  550.     CARD32    font_header_flags B32;
  551.     CARD8    font_hdr_char_range_min_char_high;
  552.     CARD8    font_hdr_char_range_min_char_low;
  553.     CARD8    font_hdr_char_range_max_char_high;
  554.     CARD8    font_hdr_char_range_max_char_low;
  555.     CARD8    font_header_draw_direction;
  556.     CARD8    font_header_pad;
  557.     CARD8    font_header_default_char_high;
  558.     CARD8    font_header_default_char_low;
  559.     INT16    font_header_min_bounds_left B16;
  560.     INT16    font_header_min_bounds_right B16;
  561.     INT16    font_header_min_bounds_width B16;
  562.     INT16    font_header_min_bounds_ascent B16;
  563.     INT16    font_header_min_bounds_descent B16;
  564.     CARD16    font_header_min_bounds_attributes B16;
  565.     INT16    font_header_max_bounds_left B16;
  566.     INT16    font_header_max_bounds_right B16;
  567.     INT16    font_header_max_bounds_width B16;
  568.     INT16    font_header_max_bounds_ascent B16;
  569.     INT16    font_header_max_bounds_descent B16;
  570.     CARD16    font_header_max_bounds_attributes B16;
  571.     INT16    font_header_font_ascent B16;
  572.     INT16    font_header_font_descent B16;
  573.     /* propinfo */
  574. }           fsQueryXInfoReply;
  575.  
  576. typedef struct {
  577.     BYTE        type;
  578.     CARD8       pad0;
  579.     CARD16     sequenceNumber B16;
  580.     CARD32     length B32;
  581.     CARD32      num_extents B32;
  582.     /* extents */
  583. }           fsQueryXExtents8Reply;
  584.  
  585. typedef fsQueryXExtents8Reply    fsQueryXExtents16Reply;
  586.  
  587. typedef struct {
  588.     BYTE        type;
  589.     CARD8       pad0;
  590.     CARD16     sequenceNumber B16;
  591.     CARD32     length B32;
  592.     CARD32    replies_hint B32;
  593.     CARD32     num_chars B32;
  594.     CARD32    nbytes B32;
  595.     /* offsets */
  596.     /* glyphs */
  597. }           fsQueryXBitmaps8Reply;
  598.  
  599. typedef fsQueryXBitmaps8Reply    fsQueryXBitmaps16Reply;
  600.  
  601. typedef union {
  602.     fsGenericReply generic;
  603.     fsListExtensionsReply extensions;
  604.     fsGetResolutionReply getres;
  605. }           fsReply;
  606.  
  607. /* errors */
  608. typedef struct {
  609.     BYTE        type;
  610.     BYTE        request;
  611.     CARD16     sequenceNumber B16;
  612.     CARD32     length B32;
  613.     fsTimestamp    timestamp;
  614.     CARD8    major_opcode;
  615.     CARD8    minor_opcode;
  616.     CARD16    pad B16;
  617. }        fsError;
  618.  
  619. typedef struct {
  620.     BYTE        type;
  621.     BYTE        request;
  622.     CARD16     sequenceNumber B16;
  623.     CARD32     length B32;
  624.     fsTimestamp    timestamp;
  625.     CARD8    major_opcode;
  626.     CARD8    minor_opcode;
  627.     CARD16    pad B16;
  628. }        fsRequestError;
  629.  
  630. typedef struct {
  631.     BYTE        type;
  632.     BYTE        request;
  633.     CARD16     sequenceNumber B16;
  634.     CARD32     length B32;
  635.     fsTimestamp    timestamp;
  636.     CARD8    major_opcode;
  637.     CARD8    minor_opcode;
  638.     CARD16    pad B16;
  639.     fsBitmapFormat    format B32;
  640. }        fsFormatError;
  641.  
  642. typedef struct {
  643.     BYTE        type;
  644.     BYTE        request;
  645.     CARD16     sequenceNumber B16;
  646.     CARD32     length B32;
  647.     fsTimestamp    timestamp;
  648.     CARD8    major_opcode;
  649.     CARD8    minor_opcode;
  650.     CARD16    pad B16;
  651.     Font    fontid;
  652. }        fsFontError;
  653.  
  654. typedef struct {
  655.     BYTE        type;
  656.     BYTE        request;
  657.     CARD16     sequenceNumber B16;
  658.     CARD32     length B32;
  659.     fsTimestamp    timestamp;
  660.     CARD8    major_opcode;
  661.     CARD8    minor_opcode;
  662.     CARD16    pad B16;
  663.     fsRange    range;
  664. }        fsRangeError;
  665.  
  666. typedef struct {
  667.     BYTE        type;
  668.     BYTE        request;
  669.     CARD16     sequenceNumber B16;
  670.     CARD32     length B32;
  671.     fsTimestamp    timestamp;
  672.     CARD8    major_opcode;
  673.     CARD8    minor_opcode;
  674.     CARD16    pad B16;
  675.     Mask    event_mask;
  676. }        fsEventMaskError;
  677.  
  678. typedef struct {
  679.     BYTE        type;
  680.     BYTE        request;
  681.     CARD16     sequenceNumber B16;
  682.     CARD32     length B32;
  683.     fsTimestamp    timestamp;
  684.     CARD8    major_opcode;
  685.     CARD8    minor_opcode;
  686.     CARD16    pad B16;
  687.     AccContext    acid;
  688. }        fsAccessContextError;
  689.  
  690. typedef struct {
  691.     BYTE        type;
  692.     BYTE        request;
  693.     CARD16     sequenceNumber B16;
  694.     CARD32     length B32;
  695.     fsTimestamp    timestamp;
  696.     CARD8    major_opcode;
  697.     CARD8    minor_opcode;
  698.     CARD16    pad B16;
  699.     Font    fontid;
  700. }        fsIDChoiceError;
  701.  
  702. typedef struct {
  703.     BYTE        type;
  704.     BYTE        request;
  705.     CARD16     sequenceNumber B16;
  706.     CARD32     length B32;
  707.     fsTimestamp    timestamp;
  708.     CARD8    major_opcode;
  709.     CARD8    minor_opcode;
  710.     CARD16    pad B16;
  711. }        fsNameError;
  712.  
  713. typedef struct {
  714.     BYTE        type;
  715.     BYTE        request;
  716.     CARD16     sequenceNumber B16;
  717.     CARD32     length B32;
  718.     fsTimestamp    timestamp;
  719.     CARD8    major_opcode;
  720.     CARD8    minor_opcode;
  721.     fsResolution resolution;
  722. }        fsResolutionError;
  723.  
  724. typedef struct {
  725.     BYTE        type;
  726.     BYTE        request;
  727.     CARD16     sequenceNumber B16;
  728.     CARD32     length B32;
  729.     fsTimestamp    timestamp;
  730.     CARD8    major_opcode;
  731.     CARD8    minor_opcode;
  732.     CARD16    pad B16;
  733. }        fsAllocError;
  734.  
  735. typedef struct {
  736.     BYTE        type;
  737.     BYTE        request;
  738.     CARD16     sequenceNumber B16;
  739.     CARD32     length B32;
  740.     fsTimestamp    timestamp;
  741.     CARD8    major_opcode;
  742.     CARD8    minor_opcode;
  743.     CARD16    pad B16;
  744.     CARD32    bad_length B32;
  745. }        fsLengthError;
  746.  
  747. typedef struct {
  748.     BYTE        type;
  749.     BYTE        request;
  750.     CARD16     sequenceNumber B16;
  751.     CARD32     length B32;
  752.     fsTimestamp    timestamp;
  753.     CARD8    major_opcode;
  754.     CARD8    minor_opcode;
  755.     CARD16    pad B16;
  756. }        fsImplementationError;
  757.  
  758. /* events */
  759. typedef struct {
  760.     BYTE        type;
  761.     BYTE        event_code;
  762.     CARD16     sequenceNumber B16;
  763.     CARD32     length B32;
  764.     fsTimestamp    timestamp;
  765. }        fsKeepAliveEvent;
  766.  
  767. typedef struct {
  768.     BYTE        type;
  769.     BYTE        event_code;
  770.     CARD16     sequenceNumber B16;
  771.     CARD32     length B32;
  772.     fsTimestamp    timestamp;
  773.     BOOL    added;
  774.     BOOL    deleted;
  775.     CARD16    pad B16;
  776. }        fsCatalogueChangeNotifyEvent;
  777.  
  778. typedef fsCatalogueChangeNotifyEvent    fsFontChangeNotifyEvent;
  779.  
  780. typedef fsCatalogueChangeNotifyEvent    fsEvent;
  781.  
  782. /* reply codes */
  783. #define    FS_Reply        0    /* normal reply */
  784. #define    FS_Error        1    /* error */
  785. #define    FS_Event        2
  786.  
  787. /* request codes */
  788. #define        FS_Noop            0
  789. #define        FS_ListExtensions    1
  790. #define        FS_QueryExtension    2
  791. #define        FS_ListCatalogues    3
  792. #define        FS_SetCatalogues    4
  793. #define        FS_GetCatalogues    5
  794. #define        FS_SetEventMask        6
  795. #define        FS_GetEventMask        7
  796. #define        FS_CreateAC        8
  797. #define        FS_FreeAC        9
  798. #define        FS_SetAuthorization    10
  799. #define        FS_SetResolution    11
  800. #define        FS_GetResolution    12
  801. #define        FS_ListFonts        13
  802. #define        FS_ListFontsWithXInfo    14
  803. #define        FS_OpenBitmapFont    15
  804. #define        FS_QueryXInfo        16
  805. #define        FS_QueryXExtents8    17
  806. #define        FS_QueryXExtents16    18
  807. #define        FS_QueryXBitmaps8    19
  808. #define        FS_QueryXBitmaps16    20
  809. #define        FS_CloseFont        21
  810.  
  811. /* restore decls */
  812. #undef    Mask
  813. #undef    Font
  814. #undef  AccContext
  815.  
  816. #endif                /* _FS_PROTO_H_ */
  817.